package com.jt.www.model.vo.endorse;


import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 教育渠道批单详情查询返回值
 *
 * @author
 */

public class EduQueryEndorsementDetailVo {


    /**
     * 批单附件信息
     */
    @ApiModelProperty("批单附件信息")
    List<EndorsementsFileInfoVO> eduEndorsementFileVos;
    /**
     * 批单附件信息
     */
    @ApiModelProperty("被保人附件信息")
    List<EndorsementsFileInfoVO> inuredsEndorsementFileVos;
    /**
     * 批改前投保人信息
     */
    @ApiModelProperty("批改前投保人信息")
    private ContextCorporation modifyBeforeHolder;
    /**
     * 批改后投保人信息
     */
    @ApiModelProperty("批改后投保人信息")
    private ContextCorporation modifyAfterHolder;
    /**
     * 批改前被保人信息
     */
    @ApiModelProperty("批改前被保人信息")
    private EduInsuredVo modifyBeforeInsured;
    /**
     * 批改后被保人信息
     */
    @ApiModelProperty("批改后被保人信息")
    private EduInsuredVo modifyAfterInsured;


    // 批单信息
    /**
     * 批单申请号
     */
    @ApiModelProperty("批单申请号")
    private String applyNo;

    /**
     * 渠道号
     */
    @ApiModelProperty("渠道号")
    private String channelCode;

    /**
     * 渠道名称
     */
    @ApiModelProperty("渠道名称")
    private String channelName;

    /**
     * 投保单号
     */
    @ApiModelProperty("投保单号")
    private String applicationFormCode;

    /**
     * 批改类型,01-般性批改,02-批减,03-批加,04-批退,05-协议批加,以此类推
     */
    @ApiModelProperty("批改类型")
    private String endorsementsType;

    /**
     * 批改方式：01-在线批单,02-事后补录
     */
    @ApiModelProperty("批改方式")
    private String endorsementsMode;

    /**
     * 批单号,保险公司批单号
     */
    @ApiModelProperty("批单号")
    private String endorsementsNo;

    /**
     * 原保单号
     */
    @ApiModelProperty("原保单号")
    private String insuranceNo;

    /**
     * 产品类型
     */
    @ApiModelProperty("产品类型")
    private String productType;


    /**
     * 产品编码
     */
    @ApiModelProperty("产品编码")
    private String productCode;

    /**
     * 产品名称
     */
    @ApiModelProperty("产品名称")
    private String productName;

    /**
     * 保单保费
     */
    @ApiModelProperty("保单保费")
    private BigDecimal policyAmount;

    /**
     * 批单保费金额
     */
    @ApiModelProperty("批单保费金额")
    private BigDecimal batchPremium;

    /**
     * 批单优惠前金额
     */
    @ApiModelProperty("批单优惠前金额")
    private BigDecimal totalAmount;

    /**
     * 应收批单金额
     */
    @ApiModelProperty("应收批单金额")
    private BigDecimal receivablePremium;

    /**
     * 实收批单金额
     */
    @ApiModelProperty("实收批单金额")
    private BigDecimal payPremium;

    /**
     * 主险总保费
     */
    @ApiModelProperty("主险总保费")
    private BigDecimal mainInsurancePremium;

    /**
     * 附加险总保费
     */
    @ApiModelProperty("附加险总保费")
    private BigDecimal additionalInsurancePremium;

    /**
     * 主险变动金额
     */
    @ApiModelProperty("主险变动金额")
    private BigDecimal baseAmount;

    /**
     * 附加险变动金额
     */
    @ApiModelProperty("附加险变动金额")
    private BigDecimal addAmount;

    /**
     * 保费变动前金额
     */
    @ApiModelProperty("保费变动前金额")
    private BigDecimal premiumAmountBefore;

    /**
     * 保费变动后金额
     */
    @ApiModelProperty("保费变动后金额")
    private BigDecimal premiumAmountAfter;

    /**
     * 当前批改次数
     */
    @ApiModelProperty("当前批改次数")
    private Long endorsementsCount;

    /**
     * 批单生效日期
     */
    @ApiModelProperty("批单生效日期")
    private Date validDate;

    /**
     * 批单申请日期
     */
    @ApiModelProperty("批单申请日期")
    private Date applyDate;

    /**
     * 批单保险起期
     */
    @ApiModelProperty("批单保险起期")
    private Date startDate;

    /**
     * 批单保险止期
     */
    @ApiModelProperty("批单保险止期")
    private Date endDate;

    /**
     * 最后一次付款日期
     */
    @ApiModelProperty("最后一次付款日期")
    private Date payDate;

    /**
     * 保费确认到账日期
     */
    @ApiModelProperty("保费确认到账日期")
    private Date premiumConfirmedDate;

    /**
     * 批单签单时间
     */
    @ApiModelProperty("批单签单时间")
    private Date issueDate;

    /**
     * 批单状态：0 - 已保存、1 - 已提交、2 - 已复核、3 - 复核不通过、4 - 已关联、5 - 待出单、6 - 已出单
     */
    @ApiModelProperty("批单状态")
    private String status;


    /**
     * 财务状态：01-未到账、02-部分到账、03-已到账
     */
    @ApiModelProperty("财务状态")
    private String balanceStatus;

    /**
     * 支付状态
     */
    @ApiModelProperty("支付状态")
    private String payStatus;

    /**
     * 退费状态:1 - 无需退费2 - 未退费3 - 已退费
     */
    @ApiModelProperty("退费状态")
    private String refundStatus;

    /**
     * 有效（00）终止（01）失效（02）
     */
    @ApiModelProperty("有效标志")
    private String validStatus;

    /**
     * 批改原因
     */
    @ApiModelProperty("批改原因")
    private String reason;

    /**
     * 批单申请人
     */
    @ApiModelProperty("批单申请人")
    private String applicant;

    /**
     * 批单申请人
     */
    @ApiModelProperty("批单申请人")
    private String applicantCode;

    /**
     * 订单ID
     */
    @ApiModelProperty("订单ID")
    private Long orderId;

    /**
     * 批单确认人
     */
    @ApiModelProperty("批单确认人")
    private String confirmor;

    /**
     * 批单确认时间
     */
    @ApiModelProperty("批单确认时间")
    private Date confirmTime;


    /**
     * 省
     */
    @ApiModelProperty("省编码")
    private String provinceCode;

    /**
     * 市
     */
    @ApiModelProperty("市编码")
    private String cityCode;

    /**
     * 县
     */
    @ApiModelProperty("县编码")
    private String countyCode;

    /**
     * 机构编码
     */
    @ApiModelProperty("机构编码")
    private String branchCode;

    /**
     * 机构名称
     */
    @ApiModelProperty("机构名称")
    private String branchName;

    /**
     * 本次批单优惠的金额
     */
    @ApiModelProperty("批单优惠金额")
    private BigDecimal preferentialPrem;
    /**
     * 支付方式  01-在线支付， 02-转账支付
     */
    @ApiModelProperty("支付方式")
    private String payChannel;

    /**
     * 支付渠道  allin - 通联  ali - 支付宝  weixin-微信 vbao-微保  adan-预缴存
     */
    @ApiModelProperty("支付渠道")
    private String payMethod;

    @ApiModelProperty("险种信息")
    private List<BusRiskVO> risks;

    @ApiModelProperty("险种对应的批改人数")
    private List<RiskEndorseNum> riskEndorseNums;

    public ContextCorporation getModifyBeforeHolder() {
        return modifyBeforeHolder;
    }

    public void setModifyBeforeHolder(ContextCorporation modifyBeforeHolder) {
        this.modifyBeforeHolder = modifyBeforeHolder;
    }

    public ContextCorporation getModifyAfterHolder() {
        return modifyAfterHolder;
    }

    public void setModifyAfterHolder(ContextCorporation modifyAfterHolder) {
        this.modifyAfterHolder = modifyAfterHolder;
    }

    public EduInsuredVo getModifyBeforeInsured() {
        return modifyBeforeInsured;
    }

    public void setModifyBeforeInsured(EduInsuredVo modifyBeforeInsured) {
        this.modifyBeforeInsured = modifyBeforeInsured;
    }

    public EduInsuredVo getModifyAfterInsured() {
        return modifyAfterInsured;
    }

    public void setModifyAfterInsured(EduInsuredVo modifyAfterInsured) {
        this.modifyAfterInsured = modifyAfterInsured;
    }

    public List<EndorsementsFileInfoVO> getEduEndorsementFileVos() {
        return eduEndorsementFileVos;
    }

    public void setEduEndorsementFileVos(List<EndorsementsFileInfoVO> eduEndorsementFileVos) {
        this.eduEndorsementFileVos = eduEndorsementFileVos;
    }

    public List<EndorsementsFileInfoVO> getInuredsEndorsementFileVos() {
        return inuredsEndorsementFileVos;
    }

    public void setInuredsEndorsementFileVos(List<EndorsementsFileInfoVO> inuredsEndorsementFileVos) {
        this.inuredsEndorsementFileVos = inuredsEndorsementFileVos;
    }

    public String getApplyNo() {
        return applyNo;
    }

    public void setApplyNo(String applyNo) {
        this.applyNo = applyNo;
    }

    public String getChannelCode() {
        return channelCode;
    }

    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

    public String getChannelName() {
        return channelName;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }

    public String getApplicationFormCode() {
        return applicationFormCode;
    }

    public void setApplicationFormCode(String applicationFormCode) {
        this.applicationFormCode = applicationFormCode;
    }

    public String getEndorsementsType() {
        return endorsementsType;
    }

    public void setEndorsementsType(String endorsementsType) {
        this.endorsementsType = endorsementsType;
    }

    public String getEndorsementsMode() {
        return endorsementsMode;
    }

    public void setEndorsementsMode(String endorsementsMode) {
        this.endorsementsMode = endorsementsMode;
    }

    public String getEndorsementsNo() {
        return endorsementsNo;
    }

    public void setEndorsementsNo(String endorsementsNo) {
        this.endorsementsNo = endorsementsNo;
    }

    public String getInsuranceNo() {
        return insuranceNo;
    }

    public void setInsuranceNo(String insuranceNo) {
        this.insuranceNo = insuranceNo;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public BigDecimal getPolicyAmount() {
        return policyAmount;
    }

    public void setPolicyAmount(BigDecimal policyAmount) {
        this.policyAmount = policyAmount;
    }

    public BigDecimal getBatchPremium() {
        return batchPremium;
    }

    public void setBatchPremium(BigDecimal batchPremium) {
        this.batchPremium = batchPremium;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getReceivablePremium() {
        return receivablePremium;
    }

    public void setReceivablePremium(BigDecimal receivablePremium) {
        this.receivablePremium = receivablePremium;
    }

    public BigDecimal getPayPremium() {
        return payPremium;
    }

    public void setPayPremium(BigDecimal payPremium) {
        this.payPremium = payPremium;
    }

    public BigDecimal getMainInsurancePremium() {
        return mainInsurancePremium;
    }

    public void setMainInsurancePremium(BigDecimal mainInsurancePremium) {
        this.mainInsurancePremium = mainInsurancePremium;
    }

    public BigDecimal getAdditionalInsurancePremium() {
        return additionalInsurancePremium;
    }

    public void setAdditionalInsurancePremium(BigDecimal additionalInsurancePremium) {
        this.additionalInsurancePremium = additionalInsurancePremium;
    }

    public BigDecimal getBaseAmount() {
        return baseAmount;
    }

    public void setBaseAmount(BigDecimal baseAmount) {
        this.baseAmount = baseAmount;
    }

    public BigDecimal getAddAmount() {
        return addAmount;
    }

    public void setAddAmount(BigDecimal addAmount) {
        this.addAmount = addAmount;
    }

    public BigDecimal getPremiumAmountBefore() {
        return premiumAmountBefore;
    }

    public void setPremiumAmountBefore(BigDecimal premiumAmountBefore) {
        this.premiumAmountBefore = premiumAmountBefore;
    }

    public BigDecimal getPremiumAmountAfter() {
        return premiumAmountAfter;
    }

    public void setPremiumAmountAfter(BigDecimal premiumAmountAfter) {
        this.premiumAmountAfter = premiumAmountAfter;
    }

    public Long getEndorsementsCount() {
        return endorsementsCount;
    }

    public void setEndorsementsCount(Long endorsementsCount) {
        this.endorsementsCount = endorsementsCount;
    }

    public Date getValidDate() {
        return validDate;
    }

    public void setValidDate(Date validDate) {
        this.validDate = validDate;
    }

    public Date getApplyDate() {
        return applyDate;
    }

    public void setApplyDate(Date applyDate) {
        this.applyDate = applyDate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getPayDate() {
        return payDate;
    }

    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }

    public Date getPremiumConfirmedDate() {
        return premiumConfirmedDate;
    }

    public void setPremiumConfirmedDate(Date premiumConfirmedDate) {
        this.premiumConfirmedDate = premiumConfirmedDate;
    }

    public Date getIssueDate() {
        return issueDate;
    }

    public void setIssueDate(Date issueDate) {
        this.issueDate = issueDate;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getBalanceStatus() {
        return balanceStatus;
    }

    public void setBalanceStatus(String balanceStatus) {
        this.balanceStatus = balanceStatus;
    }

    public String getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(String payStatus) {
        this.payStatus = payStatus;
    }

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getValidStatus() {
        return validStatus;
    }

    public void setValidStatus(String validStatus) {
        this.validStatus = validStatus;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getApplicant() {
        return applicant;
    }

    public void setApplicant(String applicant) {
        this.applicant = applicant;
    }

    public String getApplicantCode() {
        return applicantCode;
    }

    public void setApplicantCode(String applicantCode) {
        this.applicantCode = applicantCode;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getConfirmor() {
        return confirmor;
    }

    public void setConfirmor(String confirmor) {
        this.confirmor = confirmor;
    }

    public Date getConfirmTime() {
        return confirmTime;
    }

    public void setConfirmTime(Date confirmTime) {
        this.confirmTime = confirmTime;
    }

    public String getProvinceCode() {
        return provinceCode;
    }

    public void setProvinceCode(String provinceCode) {
        this.provinceCode = provinceCode;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getCountyCode() {
        return countyCode;
    }

    public void setCountyCode(String countyCode) {
        this.countyCode = countyCode;
    }

    public String getBranchCode() {
        return branchCode;
    }

    public void setBranchCode(String branchCode) {
        this.branchCode = branchCode;
    }

    public String getBranchName() {
        return branchName;
    }

    public void setBranchName(String branchName) {
        this.branchName = branchName;
    }

    public BigDecimal getPreferentialPrem() {
        return preferentialPrem;
    }

    public void setPreferentialPrem(BigDecimal preferentialPrem) {
        this.preferentialPrem = preferentialPrem;
    }

    public String getPayChannel() {
        return payChannel;
    }

    public void setPayChannel(String payChannel) {
        this.payChannel = payChannel;
    }

    public String getPayMethod() {
        return payMethod;
    }

    public void setPayMethod(String payMethod) {
        this.payMethod = payMethod;
    }

    public List<BusRiskVO> getRisks() {
        return risks;
    }

    public void setRisks(List<BusRiskVO> risks) {
        this.risks = risks;
    }

    public List<RiskEndorseNum> getRiskEndorseNums() {
        return riskEndorseNums;
    }

    public void setRiskEndorseNums(List<RiskEndorseNum> riskEndorseNums) {
        this.riskEndorseNums = riskEndorseNums;
    }

    /**
     * 险种对应的批改人数
     */

    public static class RiskEndorseNum {
        @ApiModelProperty("险种编码")
        private String riskCode;

        @ApiModelProperty("险种名称")
        private String riskName;

        @ApiModelProperty("批改人数")
        private int correctNum;

        @ApiModelProperty("产生费用人数")
        private int costNum;

        public String getRiskCode() {
            return this.riskCode;

        }

        public void setRiskCode(String riskCode) {
            this.riskCode = riskCode;
        }

        public String getRiskName() {
            return this.riskName;

        }

        public void setRiskName(String riskName) {
            this.riskName = riskName;
        }

        public int getCorrectNum() {
            return this.correctNum;

        }

        public void setCorrectNum(int correctNum) {
            this.correctNum = correctNum;
        }

        public int getCostNum() {
            return this.costNum;

        }

        public void setCostNum(int costNum) {
            this.costNum = costNum;
        }
    }

    /**
     * 被保人信息
     */

    public static class EduInsuredVo {
        /**
         * 企业编码
         */
        @ApiModelProperty("企业编码")
        private String corporationCode = "";

        /**
         * 企业地址
         */
        @ApiModelProperty("企业地址")
        private String address = "";

        /**
         * 联系人
         */
        @ApiModelProperty("联系人")
        private String linkPerson = "";

        /**
         * 联系人手机号
         */
        @ApiModelProperty("联系人手机号")
        private String linkPhone = "";

        /**
         * 联系人电话
         */
        @ApiModelProperty("联系人电话")
        private String linkTel = "";

        /**
         * 联系人邮箱
         */
        @ApiModelProperty("联系人邮箱")
        private String linkEmail = "";

        /**
         * 法人
         */
        @ApiModelProperty("法人")
        private String legalPerson = "";

        /**
         * 营业执照编号
         */
        @ApiModelProperty("营业执照编号")
        private String businessLicenseNo = "";

        /**
         * 组织机构编码
         */
        @ApiModelProperty("组织机构编码")
        private String organizationCode = "";

        /**
         * 营业范围
         */
        @ApiModelProperty("营业范围")
        private String businessScope = "";

        /**
         * 邮编
         */
        @ApiModelProperty("邮编")
        private String zipCode = "";

        /**
         * 许可证号
         */
        @ApiModelProperty("许可证号")
        private String licenseNo = "";

        /**
         * 传真
         */
        @ApiModelProperty("传真")
        private String fax = "";

        /**
         * 详细地址
         */
        @ApiModelProperty("详细地址")
        private String location = "";

        /**
         * 省编码
         */
        @ApiModelProperty("省编码")
        private String provinceCode = "";

        /**
         * 城市编码
         */
        @ApiModelProperty("城市编码")
        private String cityCode = "";

        /**
         * 区县编码
         */
        @ApiModelProperty("区县编码")
        private String countyCode = "";

        /**
         * 企业名称
         */
        @ApiModelProperty("企业名称")
        private String name = "";

        /**
         * 经营性质
         */
        @ApiModelProperty("经营性质")
        private String managerType = "";

        /**
         * 企业类型
         */
        @ApiModelProperty("企业类型")
        private String corporationType = "";

        /**
         * 三证合一码
         */
        @ApiModelProperty("三合一码")
        private String threeInOneCode = "";

        /**
         * 扩展属性
         */
        @ApiModelProperty("扩展字段")
        private List<ContextExtend> extendList = new ArrayList<ContextExtend>();

        /**
         * 行业类型
         */
        @ApiModelProperty("行业类型")
        private String industryKind = "";

        /**
         * 被保人标的信息
         */
        @ApiModelProperty("被保人标的")
        private List<ContextInsuranceObject> insuranceObjects = new ArrayList<ContextInsuranceObject>();

        public String getCorporationCode() {
            return this.corporationCode;

        }

        public void setCorporationCode(String corporationCode) {
            this.corporationCode = corporationCode;
        }

        public String getAddress() {
            return this.address;

        }

        public void setAddress(String address) {
            this.address = address;
        }

        public String getLinkPerson() {
            return this.linkPerson;

        }

        public void setLinkPerson(String linkPerson) {
            this.linkPerson = linkPerson;
        }

        public String getLinkPhone() {
            return this.linkPhone;

        }

        public void setLinkPhone(String linkPhone) {
            this.linkPhone = linkPhone;
        }

        public String getLinkTel() {
            return this.linkTel;

        }

        public void setLinkTel(String linkTel) {
            this.linkTel = linkTel;
        }

        public String getLinkEmail() {
            return this.linkEmail;

        }

        public void setLinkEmail(String linkEmail) {
            this.linkEmail = linkEmail;
        }

        public String getLegalPerson() {
            return this.legalPerson;

        }

        public void setLegalPerson(String legalPerson) {
            this.legalPerson = legalPerson;
        }

        public String getBusinessLicenseNo() {
            return this.businessLicenseNo;

        }

        public void setBusinessLicenseNo(String businessLicenseNo) {
            this.businessLicenseNo = businessLicenseNo;
        }

        public String getOrganizationCode() {
            return this.organizationCode;

        }

        public void setOrganizationCode(String organizationCode) {
            this.organizationCode = organizationCode;
        }

        public String getBusinessScope() {
            return this.businessScope;

        }

        public void setBusinessScope(String businessScope) {
            this.businessScope = businessScope;
        }

        public String getZipCode() {
            return this.zipCode;

        }

        public void setZipCode(String zipCode) {
            this.zipCode = zipCode;
        }

        public String getLicenseNo() {
            return this.licenseNo;

        }

        public void setLicenseNo(String licenseNo) {
            this.licenseNo = licenseNo;
        }

        public String getFax() {
            return this.fax;

        }

        public void setFax(String fax) {
            this.fax = fax;
        }

        public String getLocation() {
            return this.location;

        }

        public void setLocation(String location) {
            this.location = location;
        }

        public String getProvinceCode() {
            return this.provinceCode;

        }

        public void setProvinceCode(String provinceCode) {
            this.provinceCode = provinceCode;
        }

        public String getCityCode() {
            return this.cityCode;

        }

        public void setCityCode(String cityCode) {
            this.cityCode = cityCode;
        }

        public String getCountyCode() {
            return this.countyCode;

        }

        public void setCountyCode(String countyCode) {
            this.countyCode = countyCode;
        }

        public String getName() {
            return this.name;

        }

        public void setName(String name) {
            this.name = name;
        }

        public String getManagerType() {
            return this.managerType;

        }

        public void setManagerType(String managerType) {
            this.managerType = managerType;
        }

        public String getCorporationType() {
            return this.corporationType;

        }

        public void setCorporationType(String corporationType) {
            this.corporationType = corporationType;
        }

        public String getThreeInOneCode() {
            return this.threeInOneCode;

        }

        public void setThreeInOneCode(String threeInOneCode) {
            this.threeInOneCode = threeInOneCode;
        }

        public List<ContextExtend> getExtendList() {
            return this.extendList;

        }

        public void setExtendList(List<ContextExtend> extendList) {
            this.extendList = extendList;
        }

        public String getIndustryKind() {
            return this.industryKind;

        }

        public void setIndustryKind(String industryKind) {
            this.industryKind = industryKind;
        }

        public List<ContextInsuranceObject> getInsuranceObjects() {
            return this.insuranceObjects;

        }

        public void setInsuranceObjects(List<ContextInsuranceObject> insuranceObjects) {
            this.insuranceObjects = insuranceObjects;
        }
    }
}
